package weiyunsuan;

public class _05交换奇偶位 {
    //将一个数的二进制的奇偶位交换
    public static void main(String[] args) {
        int a = 9;
        int b = change(a);
        System.out.println(Integer.toString(a,2));
        System.out.println(Integer.toString(b,2));
    }

    private static int change(int a) {
        int ou = a&0xaaaaaaaa;  //和1010 1010 1010 1010 ... 1010做与运算，此数转为16进制，保留原数的偶数位
        int ji = a&0x55555555;  //和0101 0101 0101 0101 ... 0101做与运算，此数转为16进制,保留原数的奇数位
        return (ji<<1)^(ou>>1);
    }
}
